# 数据类型和变量
a = -1
if a >= 0:
    print(a)
else:
    print(-a)

# 1.1、数据类型：字符串
# 字符串转义 转义字符\可以转义很多字符，
# 比如\n表示换行，\t表示制表符，字符\本身也要转义，所以\\表示的字符就是\
print('I\'m "OK"!')
print('I miss you\nme to')
print('Hello\tWorld!')
print('\\\n\\')
# 如果字符串里面有很多字符都需要转义，就需要加很多\，为了简化，Python还允许用r''表示''内部的字符串默认不转义
print(r'\\\t\\')
# 如果字符串内部有很多换行，用\n写在一行里不好阅读，为了简化，Python允许用'''...'''的格式表示多行内容
print('''test1
test2
test3''')
print(r'''demo1\n
demo2''')

# 1.2数据类型：布尔值
# 布尔值和布尔代数的表示完全一致，一个布尔值只有True、False两种值，要么是True，要么是False，在Python中，可以直接用True、False表示布尔值（请注意大小写）
print(True)
print(False)
print(3 > 2)
print(1 > 2)
# 布尔值可以用and、or和not运算
print(True and False)
print(5 > 1 or 3 < 2)

# 2.1：变量:动态变量（不指定数据类型），java中的变量为静态变量
# 变量在程序中就是用一个变量名表示了，变量名必须是大小写英文、数字和_的组合，且不能用数字开头
# 在Python中，等号=是赋值语句，可以把任意数据类型赋值给变量，同一个变量可以反复赋值，而且可以是不同类型的变量
a = 1
print(a)    # a是整数
b = 'testB'
print(b)    # b是字符串
c = True
print(c)    # c是布尔值

# 当我们写a = 'ABC'的时候Python解释器干了两件事情：1.在内存中创建了一个'ABC'的字符串；2.在内存中创建了一个名为a的变量，并把它指向'ABC'。
a = 'ABC'
b = a
a = 'XYZ'
print('b =', b)   #

# 2.2常量
# 所谓常量就是不能变的变量，比如常用的数学常数π就是一个常量。在Python中，通常用全部大写的变量名表示常量
PI = 3.1415926
print(PI)
# 但事实上PI仍然是一个变量，Python根本没有任何机制保证PI不会被改变，所以，用全部大写的变量名表示常量只是一个习惯上的用法，如果你一定要改变变量PI的值，也没人能拦住你
PI = 'abc'
print(PI)

# 在Python中，有两种除法，一种除法是/,除法计算结果是浮点数，即使是两个整数恰好整除，结果也是浮点数,
# 还有一种除法是//，称为地板除，两个整数的除法仍然是整数
print(10 / 3)
print(9 / 3)
print(10 // 3)
# 因为//除法只取结果的整数部分，所以Python还提供一个余数运算，可以得到两个整数相除的余数
print(10 % 3)
